了解 Request Lifecycle(請求生命週期)就像知道一個流程,,了解這些能讓幫助我們更好地使用和開發網站。
入口點:所有請求都從 public/index.php
文件開始。這個文件負責加載 Composer 自動加載器並獲取 Laravel 應用實例。
HTTP / Console Kernels:請求會被發送到 HTTP kernel 或 console kernel ,具體取決於請求的類型。HTTP kernel 負責處理所有進入的 HTTP 請求。
啟動過程:
handle
方法 -> 接收一個 Request
並返回一個 Response
。Service Providers:Service Providers 是啟動 Laravel 應用的關鍵,它們負責加載各種組件,如資料庫、queue、驗證和路由等。每個主要功能都是通過 Service Providers 進行配置和啟動的。
路由:一旦應用啟動並且所有 Service Providers 都已註冊,請求將交給路由進行分派。路由會將請求發送到相應的控制器或路由,並運行任何特定於路由的 middleware。
完成請求:當控制器方法返回 response 後,該 response 將通過 middleware 返回,最終發送到用戶的瀏覽器。
middleware 是一種過濾或檢查進入應用的 HTTP 請求的機制。它們可以用來執行許多任務,例如:
定義 middleware:在 app/Http/Kernel.php
文件中定義 middleware,並為其指定一個鍵。例如:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];
指派 middleware:使用 middleware
方法將 middleware 指派給特定路由。例如:
Route::get('/profile', function () {
// ...
})->middleware('auth');
多個middleware:可以同時指派多個 middleware:
Route::get('/', function () {
// ...
})->middleware(['first', 'second']);
**middleware群組 **:可以將多個 middleware 組合在一起,以便更方便地指派給路由。例如:
Route::middleware(['web'])->group(function () {
// ...
});
參考資料
踏著身心靈的塔羅腳步,轉向技術與邏輯的工程師之路,就藉由塔羅日抽來紀錄今日的學習與生活吧!
寶劍一:給自己的祝福就是持續的學習新知
“When you're curious, you find lots of interesting things to do.”
如果你有好奇心,你會找到很多有趣的事做。
- Walt Disney